package com.suda.es.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.util.Date;

/**
 * @Document注解
 *      用在类上,将指定的对象映射成ES中的一条json格式文档
 *      属性
 *          indexName: 用来指定这个对象转为json文档存入哪个索引中,要求ES服务器中之前不能存在此索引名
 *          type     : 用来指定在当前这个索引下创建的类型名称
 */
@Data
@Document(indexName = "ems",type = "emp")
public class Emp {

    //@Id注解的作用是用来将对象中的id属性与文档中的_id进行对应,即对该id赋值就是对文档中的_id赋值
    @Id
    private String id;

    /**
     * @Field注解
     *      用于属性上,代表ES类型中的一个映射
     *      属性
     *          type: 用来指定映射类型
     *          analyzer: 用来指定分词器,仅用在能分词的映射上
     *          format: 指定日期格式
     */
    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String name;

    @Field(type = FieldType.Integer)
    private Integer age;

    @Field(type = FieldType.Date)
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date bir;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String content;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String address;

}
